#include<iostream>
//这个文件负责创建一个共享内存，并且从共享内存里面读
#include <sys/ipc.h>
#include <sys/shm.h>
#include<sys/types.h>
#include<unistd.h>
#define pathname "./318"
#define proyjid 123
const int gsize = 4096;

int main()
{
    key_t _key = ftok(pathname,proyjid);
    int id = shmget(_key,gsize,IPC_CREAT | IPC_EXCL | 0666);
    if(id < 0) //代表创建失败
    {
        std :: cerr << "shmget" << std :: endl;
    }
    //既然是它创建共享内存，那么肯定需要它来删除共享内存
    char* mem = (char*)shmat(id,nullptr,0);
    while(true)
    {
        sleep(13);
        printf("%s\n",mem);
    }
    int h = shmctl(id,IPC_RMID,nullptr);  //删掉共享内存
    if(h == 0) std :: cout << "删除成功了，老师儿" << std :: endl;
    else std :: cout << "失败了，老师儿" << std :: endl;
}